#coding:utf-8
'''
Python支持@property对属性进行操作
'''
class Person:
    def __init__(self,name,age):
        self.__name = name
        self.__age = age
    #访问器 类似于 getter()方法
    @property
    def name(self):   #p1.name
        return self.__name
    #把属性写在@property下面，方法名同属性名，可以直接访问
    @property
    def age(self):
        return self.__age
    #修改器 类似于setter() 方法
    @age.setter
    def age(self,age):
        self.__age=age
    def show(self):
        if self.__age<18:
            print('%s未成年' %self.__name)
        else:
            print('%s已成年' %self.__name)
def main():
    p1 = Person('张三',16)#实例化
    p1.show()
    #p1.name='李四'#报错，无法设置属性值
    print(p1.name) #name只可以访问
    p1.age=18  #age可以修改
    p1.show()
'''  
python有一个内置类属性，存在于python的程序当中，
每一个程序都对应一个主程序名 __main__
如果该文件被其他程序调用，那就不会执行main()方法
'''
if __name__=='__main__':
    main()  